package root.repositorios;

import java.util.ArrayList;
import java.util.List;

import root.plumbum2.Emprestimo;

/**
 * 
 * Classe que representa um repositorio de Requisicoes de Emprestimo
 * 
 */
public class RepositorioRequisicaoEmprestimo implements
		RepositorioInterface<Emprestimo> {
	private List<Emprestimo> listaRequisicoes = new ArrayList<Emprestimo>();

	/**
	 * Insere uma requisicao de emprestimo no repositorio
	 */
	@Override
	public void insert(Emprestimo o) {
		listaRequisicoes.add(o);
	}

	/**
	 * Remove uma requisicao de emprestimo do repositorio
	 */
	@Override
	public void remove(Emprestimo o) {
		listaRequisicoes.remove(o);
	}

	/**
	 * Procura por uma requisicao de emprestimo dentro do repositorio.
	 * 
	 * @param Emprestimo
	 *            que representa a requisicao
	 * @return O emprestimo encontrado ou null caso contrario
	 */
	@Override
	public Emprestimo search(Emprestimo o) {
		if (listaRequisicoes.contains(o)) {
			for (Emprestimo emprestimo : listaRequisicoes) {
				if (emprestimo.equals(o))
					return o;
			}

		}
		return null;
	}

	/**
	 * Procura por uma requisicao de emprestimo dentro do repositorio.
	 * 
	 * @param idEmprestimo
	 *            ID que representa o emprestimo
	 * @return O emprestimo encontrado ou null caso contrario
	 */
	public Emprestimo search(String idEmprestimo) {
		Emprestimo retorno = null;
		for (Emprestimo emp : listaRequisicoes) {
			if (emp.getIdEmprestimo().equals(idEmprestimo)) {
				retorno = emp;
			}
		}
		return retorno;

	}

	/**
	 * Retorna uma lista contendo todas as requisicoes de emprestimo do
	 * repositorio
	 */
	@Override
	public List<Emprestimo> getRepositorio() {
		return listaRequisicoes;
	}

}
